Nonvolatile memory and writing method

ABSTRACT

According to one embodiment, three bits stored in one memory cell of a nonvolatile memory correspond to three pages. In first page writing, a threshold voltage becomes within a first or second region base on a bit value. In second page writing, if being within the first region, it becomes within the first or fourth region; and if being within the second region, it becomes within the second or third region. In the third page writing, if being within the first region, it becomes within the first or sixth region; if being within the second region, it becomes within the second or seventh region; if being within the third region, it becomes within the third or eighth region; and if being within the fourth region, it becomes within the fourth or fifth region.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a Continuation of U.S. application Ser. No.14/621,894, filed Feb. 13, 2015, which is based upon and claims thebenefit of priority from the prior Japanese Patent Application No.2014-055408, filed on Mar. 18, 2014, and Japanese Patent Application No.2014-083044, filed on Apr. 14, 2014; the entire contents of which areincorporated herein by reference.

FIELD

Embodiments described herein relate generally to a nonvolatile memoryand writing method.

BACKGROUND

A NAND flash memory (which will be referred to as a NAND memory) storesinformation based on charge amounts respectively stored in the floatinggates of memory cells. Each of the memory cells has a threshold voltagein accordance with its charge amount. A plurality of data values to bestored in the memory cells are respectively correlated with a pluralityof regions of threshold voltage, and electric charges are injected tothe memory cells so that their threshold voltages fall within respectiveregions corresponding to data values to be stored. Then, in reading, thethreshold voltages of the memory cells are judged in terms of regionswhere the threshold voltages are present, to obtain the data valuesstored in the memory cells.

In the case of a NAND memory of the 3-bit/Cell type that is capable ofstoring three bits in one memory cell, the number of threshold voltageregions is larger, as compared with a NAND memory of the 1-bit/Cell typethat is capable of storing one bit in one memory cell and a NAND memoryof the 2-bit/Cell type that is capable of storing two bits in one memorycell. Accordingly, as compared with NAND memories of the 1-bit/Cell typeand the 2-bit/Cell type, a NAND memory of the 3-bit/Cell type requireshigher adjustment accuracy of threshold voltages and entails largerinfluence of mutual interference between cells.

In general, NAND memories of the generation with advancedminiaturization in recent years adopt a technique of simultaneouslywriting (programming) all the bits to be stored in one memory cell, inorder to prevent mutual interference between cells.

On the other hand, if mutual interference between cells is not soserious, the bits to be stored in one memory cell may be programmed oneby one in order. As a method of programming bits one by one for memorycells of the 3-bit/Cell type, there is known 1-2-4 coding. This methodis such coding that seven portions between eight threshold voltageregions of the 3-bit/Cell type are allocated to the three bitsrespectively by 1, 2, and 4 portions.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing a configuration example of a memorydevice according to a first embodiment;

FIG. 2 is a block diagram showing a configuration example of anonvolatile memory according to the first embodiment;

FIG. 3 is a view showing an example of threshold regions according tothe first embodiment;

FIG. 4 is a view showing data coding according to the first embodiment;

FIGS. 5A to 5C are views showing threshold distributions afterprogramming of memory cells according to the first embodiment;

FIG. 6 is a view showing a method of reading a Lower page according tothe first embodiment;

FIG. 7 is a view showing a method of reading a Middle page according tothe first embodiment;

FIG. 8 is a view showing a method of reading an Upper page according tothe first embodiment;

FIG. 9 is a flow chart showing an example of a writing sequenceaccording to the first embodiment;

FIG. 10 is a flow chart showing an example of a reading sequenceaccording to the first embodiment;

FIGS. 11A and 11B are views showing data coding according to a secondembodiment;

FIGS. 12A to 12C are views showing threshold distributions afterprogramming of memory cells according to the second embodiment;

FIG. 13 is a view showing a method of reading a Lower page according tothe second embodiment;

FIG. 14 is a view showing a method of reading a Middle page according tothe second embodiment;

FIG. 15 is a view showing a method of reading an Upper page according tothe second embodiment;

FIG. 16 is a flow chart showing an example of a reading sequenceaccording to the second embodiment;

FIGS. 17A to 17C are views showing data coding according to a thirdembodiment;

FIGS. 18A to 18C are views showing threshold distributions afterprogramming of memory cells according to the third embodiment;

FIGS. 19A to 19C are views showing data coding according to a fourthembodiment;

FIGS. 20A to 20C are views showing threshold distributions afterprogramming of memory cells according to the fourth embodiment;

FIGS. 21A to 21C are views showing data coding according to a fifthembodiment;

FIGS. 22A to 22C are views showing threshold distributions afterprogramming of memory cells according to the fifth embodiment;

FIGS. 23A to 23C are views showing data coding according to a sixthembodiment;

FIGS. 24A to 24C are views showing threshold distributions afterprogramming of memory cells according to the sixth embodiment;

FIG. 25 is a view showing an example of threshold distributionfluctuations;

FIG. 26 is a flow chart showing an example of a reading sequenceaccording to a seventh embodiment where read voltages are changed;

FIG. 27 is a view showing an example of a manner of soft bits;

FIGS. 28A to 28C are views showing examples of threshold distributionsafter programming of respective pages according to a ninth embodiment;

FIGS. 29A to 29C are views showing examples of threshold distributionsafter programming of respective pages according to a tenth embodiment;and

FIGS. 30A to 30C are views showing examples of threshold distributionsafter programming of respective pages according to an eleventhembodiment.

DETAILED DESCRIPTION

According to one embodiment, a nonvolatile memory includes memory cellseach configured to store three bits respectively corresponding to firstto third pages. In writing of the first page, a threshold voltage of thememory cell is set to fall within a first or second threshold region inaccordance with a bit value to be written to the first page. In writingof the second page, if being within the first threshold region, it isset to fall within the first or fourth threshold region in accordancewith a bit value to be written; and if being within the second thresholdregion, it is set to fall within the second or third threshold region inaccordance with a bit value to be written. In writing of the third page,if being within the first threshold region, it is set to fall within thefirst or sixth threshold region in accordance with a bit value to bewritten; if being within the second threshold region, it is set to fallwithin the second or seventh threshold region in accordance with a bitvalue to be written; if being within the third threshold region, it isset to fall within the third or eighth threshold region in accordancewith a bit value to be written; and if being within the fourth thresholdregion, it is set to fall within the fourth or fifth threshold region inaccordance with a bit value to be written.

Exemplary embodiments of a nonvolatile memory and writing method will beexplained below in detail with reference to the accompanying drawings.The present invention is not limited to the following embodiments.

First Embodiment

FIG. 1 is a block diagram showing a configuration example of a memorydevice according to a first embodiment. The memory device according tothis embodiment is equipped with a memory controller 1 and a nonvolatilememory 2. The memory device can be connected to a host. For example, thehost is an electronic apparatus, such as a personal computer or mobileterminal.

The nonvolatile memory 2 is a memory that stores data in a nonvolatilemanner, such as a NAND memory. In this embodiment, the nonvolatilememory 2 will be explained as a NAND memory including memory cells thatare capable of storing three bits in each memory cell, i.e., a NANDmemory of the 3-bit/Cell type.

The memory controller 1 controls writing of the nonvolatile memory 2, inaccordance with a write command from the host. Further, the memorycontroller 1 controls reading of the nonvolatile memory 2, in accordancewith a read command from the host. The memory controller 1 is equippedwith a RAM 11, a processor 12, a host interface 13, an ECC circuit 14,and a memory interface 15. The RAM (Random Access Memory) 11, theprocessor 12, the host interface 13, the ECC circuit 14, and the memoryinterface 15 are connected to each other via an internal bus 16.

The host interface 13 outputs commands, user data (write data), and soforth, which have been received from the host, to the internal bus 16.Further, the host interface 13 transmits user data read from thenonvolatile memory 2, responses from the processor 12, and so forth tothe host.

Based on instructions from the processor 12, the memory interface 15controls a writing process of user data or the like performed to thenonvolatile memory 2 and a reading process performed to the nonvolatilememory 2.

The processor 12 totally controls the memory controller 1. For example,the processor 12 is a CPU (Central Processing Unit), MPU (MicroProcessing Unit), or the like. When the processor 12 receives a commandfrom the host via the host interface 13, it performs control accordingto this command. For example, in accordance with a command from thehost, the processor 12 instructs the memory interface 15 to write userdata and parity to the nonvolatile memory 2. Further, in accordance witha command from the host, the processor 12 instructs the memory interface15 to read user data and parity from the nonvolatile memory 2.

The processor 12 determines a storage region (memory region) on thenonvolatile memory 2, for user data to be stored in the RAM 11. The userdata is stored into the RAM 11 via the internal bus 16. The processor 12performs the decision of a memory region, in accordance with data (pagedata) of a page size, which is the write unit. In this specification,user data to be stored in one page of the nonvolatile memory 2 isdefined as unit data. In general, the unit data is encoded and is storedas a code ward in the nonvolatile memory 2. In this embodiment, encodingis not essential, and so the unit data may be stored in a non-encodedstate in the nonvolatile memory 2. However, FIG. 1 shows a configurationthat performs encoding, as a configuration example. If encoding is notperformed, the page data coincides with the unit data. Further, one codeward may be generated based on single unit data, or one code ward may begenerated based on division data derived by dividing the unit data.Further, one code ward may be generated by use of a plurality of piecesof unit data.

The processor 12 determines writing-destination memory regions of thenonvolatile memory 2 for respective unit data. Physical addresses arerespectively assigned to memory regions of the nonvolatile memory 2. Theprocessor 12 manages the writing-destination memory regions for unitdata by use of the physical addresses. The processor 12 designates adetermined memory region (physical address) and instructs the memoryinterface 15 to write user data to the nonvolatile memory 2. Theprocessor 12 manages the correspondence relationship between logicaladdresses (logical addresses managed by the host) and physicaladdresses, for user data. When the processor 12 receives a read commandincluding a logical address from the host, it specifies a physicaladdress corresponding to the logical address and instructs the memoryinterface 15 to read user data by designating the physical address.

In this specification, the memory cells connected to one word line incommon are defined as a memory cell group. In this embodiment, thenonvolatile memory 2 is a NAND memory of the 3-bit/Cell type, and onememory cell group corresponds to three pages. The three bits of thememory cells respectively correspond to these three pages. In thisembodiment, these three pages will be referred to as a Lower page (firstpage), a Middle page (second page), and an Upper page (third page).

The ECC circuit 14 encodes user data stored in the RAM 11 and therebygenerates code wards. Further, the ECC circuit 14 decodes code wardsread from the nonvolatile memory 2.

The RAM 11 temporarily stores user data received from the host until itis stored in the nonvolatile memory 2, and temporarily stores data readfrom the nonvolatile memory 2 until it is transmitted to the host. Forexample, the RAM 11 is a multi-purpose memory, such as an SRAM (StaticRandom Access Memory) or DRAM (Dynamic Random Access Memory).

FIG. 1 shows a configuration example in which the memory controller 1includes both of the ECC circuit 14 and the memory interface 15.However, the ECC circuit 14 may be built in the memory interface 15.Further, the ECC circuit 14 may be built in the nonvolatile memory 2.

FIG. 2 is a block diagram showing a configuration example of thenonvolatile memory 2 according to this embodiment. The nonvolatilememory 2 is equipped with a NAND I/O Interface 21, a control unit 22, aNAND memory cell array (memory cell part) 23, and a page buffer 24. Forexample, the nonvolatile memory 2 is formed of a one-chip semiconductorsubstrate (such as silicon substrate).

The control unit 22 controls operations of the nonvolatile memory 2based on commands or the like input from the memory controller 1 via theNAND I/O Interface 21. Specifically, when a writing request is input,the control unit 22 performs control to write data associated with thiswriting request to a designated address on the NAND memory cell array23. Further, when a reading request is input, the control unit 22performs control to read data associated with this reading request fromthe NAND memory cell array 23 and to output it to the memory controller1 via the NAND I/O Interface 21. The page buffer 24 is buffer configuredto temporarily store data input from the memory controller 1 in writingof the NAND memory cell array 23 and to temporarily stores data readfrom the NAND memory cell array 23.

FIG. 3 is a view showing an example of threshold regions according tothis embodiment. NAND memories are configured to store information basedon charge amounts respectively stored in the floating gates of memorycells. Each of the memory cells has a threshold voltage in accordancewith its charge amount. A plurality of data values to be stored in thememory cells are respectively correlated with a plurality of regions ofthreshold voltage (threshold regions). The eight distributions (mountainshapes) indicated by Er, A, B, C, D, E, F, and G in FIG. 3 respectivelyshow threshold distributions within eight threshold regions. In FIG. 3,the horizontal axis denotes the threshold voltage, and the vertical axisdenotes the distribution of the number of memory cells (the number ofcells). In this embodiment, a region where the threshold voltage is nothigher than Vr1 is called region Er, a region where the thresholdvoltage is higher than Vr1 but not higher than Vr2 is called region A, aregion where the threshold voltage is higher than Vr2 but not higherthan Vr3 is called region B, a region where the threshold voltage ishigher than Vr3 but not higher than Vr4 is called region C, a regionwhere the threshold voltage is higher than Vr4 but not higher than Vr5is called region D, a region where the threshold voltage is higher thanVr5 but not higher than Vr6 is called region E, a region where thethreshold voltage is higher than Vr6 but not higher than Vr7 is calledregion F, and a region where the threshold voltage is higher than Vr7 iscalled region G. Further, the threshold distributions corresponding tothe regions Er, A, B, C, D, E, F, and G are respectively calleddistributions Er, A, B, C, D, E, F, and G (first to eighthdistributions). The above-mentioned Vr1 to Vr7 are threshold voltagesserving as boundaries between the respective regions.

In NAND memories, a plurality of data values are respectively correlatedwith a plurality of threshold regions of the memory cells (i.e.,threshold distributions). This correlation is called data coding. Thisdata coding is determined in advance, and, in data writing(programming), electric charges are injected to the memory cells inaccordance with the data coding so that they come into respectivethreshold regions corresponding to data values to be stored. Then, inreading, a read voltage is applied to the memory cells, and data isdetermined in accordance with whether the thresholds of the memory cellsare lower or higher than the read voltage. When the threshold voltage islower than the read voltage, it represents an “erased” state and thedata value is defined as “1”. When the threshold voltage is not lowerthan the read voltage, it represents a “programmed” state and the datavalue is defined as “0”.

FIG. 4 is a view showing data coding according to this embodiment. Inthis embodiment, the eight threshold distributions (threshold regions)shown in FIG. 3 are respectively correlated with eight data values ofthree bits. As shown in FIG. 4, a memory cell whose threshold voltage iswithin the region Er is in a state storing “111” as a data value of bitscorresponding to the Upper, Middle, and Lower pages. A memory cell whosethreshold voltage is within the region A is in a state storing “110”. Amemory cell whose threshold voltage is within the region B is in a statestoring “100”. A memory cell whose threshold voltage is within theregion C is in a state storing “101”. A memory cell whose thresholdvoltage is within the region D is in a state storing “001”. A memorycell whose threshold voltage is within the region E is in a statestoring “011”. A memory cell whose threshold voltage is within theregion F is in a state storing “010”. A memory cell whose thresholdvoltage is within the region G is in a state storing “000”. When amemory cell is in an unwritten state (“erased” state), the thresholdvoltage of the memory cell is within the region Er. As described above,the coding shown in FIG. 4 is gray coding in which the data changes onlywith one bit between arbitrary two regions adjacent to each other.

In the coding shown in FIG. 4 according to this embodiment, a thresholdvoltage serving as the boundary for judging the bit value of the Upperpage is Vr4. Threshold voltages serving as the boundaries for judgingthe bit value of the Middle page are Vr2, Vr5, and Vr7. Thresholdvoltages serving as the boundaries for judging the bit value of theLower page are Vr1, Vr3, and Vr6. The numbers of threshold voltagesserving as the boundaries for judging the bit value (which will bereferred to as a boundary number, hereinafter) are 1, 3, and 3respectively for the Upper page, the Middle page, and the Lower page.Hereinafter, this coding will be referred to as 1-3-3 coding, namedafter the respective boundary numbers for the Upper page, the Middlepage, and the Lower page. It should be noted here that the number ofboundaries by which each page can change from the adjacent data is threeat most. Based on the coding shown in FIG. 4, the control unit 22 of thenonvolatile memory 2 controls programming of the NAND memory cell array23 and reading of the NAND memory cell array 23.

As a programming method of a NAND memory of the 3-bit/Cell type, thereis known a method of simultaneously writing data of the three pages tobe stored in one memory cell group. However, this method does not allowwriting of data to be performed to the pages one by one, but allowswriting to be performed only after data of the three pages is allprepared. In order to efficiently perform writing, it is preferable ifwriting can be performed to each of the pages. As an example thatperforms programming of the pages one by one in order, there is known1-2-4 coding in which the boundary numbers are 1, 2, and 4 respectivelyfor the Upper page, the Middle page, and the Lower page. According tothis method, the maximum boundary number is four, and so the probabilityof error generation becomes higher at the page with the largest boundarynumber. The error correction capability used in encoding user data isimplemented to handle the page with the highest error generationprobability. Accordingly, this method entails increases in the costand/or power consumption of the memory device to enhance the errorcorrection capability, along with decreases in the writing and readingrates. Thus, it is preferable for the pages to have error generationprobabilities not so different between them as possible.

In this embodiment, writing can be performed to the pages one by one, asdescribed later. In addition to that, as described above, it adopts the1-3-3 coding whose deviations in boundary number between the pages aresmaller. Consequently, as compared with the 1-2-4 coding, it can providedecreases in the cost and/or power consumption of the memory device,along with increases in the writing and reading rates. Further, asdescribed later, without managing information about how many pageswriting has been performed to, a correct read result can be obtained, inreading of any one of the Upper page, the Middle page, and the Lowerpage.

FIGS. 5A to 5C are views showing threshold distributions afterprogramming of memory cells according to this embodiment. FIG. 5A showsthreshold distributions after programming of the Lower page, FIG. 5Bshows threshold distributions after programming of the Middle page, andFIG. 5C shows threshold distributions after programming of the Upperpage. In this embodiment, programming can be performed for the pages oneby one, but the order of programming is fixed such that writing isperformed to the Lower page, the Middle page, and the Upper page in thisorder. However, it is not necessary to consecutively perform writing tothe Lower page, the Middle page, and the Upper page of one memory cellgroup. For example, a writing sequence may be set up such that it firstperforms writing of the Lower page of a first memory cell group, then itperforms writing of the Lower page of a second memory cell group, . . ., and thereafter it performs writing of the Middle page of the firstmemory cell group.

When the memory cells of the NAND memory cell array 23 are in theunwritten state (“erased” state), they are all in the distribution Erstate. As shown in FIG. 5A, in programming of the Lower page, thecontrol unit 22 of the nonvolatile memory 2 operates in accordance withthe bit value to be written (to be stored) to the Lower page, and setseach of the memory cells to be kept in the distribution Er or to beshifted upward by one level to the distribution A by injecting anelectric charge.

Specifically, the control unit 22 performs programming such that, whenthe bit value to be written to the Lower page is “1”, no electric chargeis injected, and, when the bit value to be written to the Lower page is“0”, an electric charge is injected to shift the threshold voltage tothe distribution A.

As shown in FIG. 5B, in writing of a memory cell group whose Lower pagehas already been subjected to writing, the control unit 22 performsprogramming of the Middle page. Specifically, if a memory cell is in thedistribution Er state due to the programming of the Lower page, thecontrol unit 22 performs programming such that, when the bit value to bewritten to the Middle page is “1”, the memory cell is kept in thedistribution Er, and, when the bit value to be written to the Middlepage is “0”, it is shifted to the distribution C. Further, if a memorycell is in the distribution A state due to the programming of the Lowerpage, the control unit 22 performs programming such that, when the bitvalue to be written to the Middle page is “1”, the memory cell is keptin the distribution A, and, when the bit value to be written to theMiddle page is “0”, it is shifted to the distribution B.

As shown in FIG. 5C, in writing of a memory cell group whose Middle pagehas already been subjected to writing, the control unit 22 performsprogramming of the Upper page. Specifically, if a memory cell is in thedistribution Er state due to the programming of the Middle page, thecontrol unit 22 performs programming such that, when the bit value to bewritten to the Upper page is “1”, the memory cell is kept in thedistribution Er, and, when the bit value to be written to the Upper pageis “0”, it is shifted to the distribution E. Further, if a memory cellis in the distribution A state due to the programming of the Middlepage, the control unit 22 performs programming such that, when the bitvalue to be written to the Upper page is “1”, the memory cell is kept inthe distribution A, and, when the bit value to be written to the Upperpage is “0”, it is shifted to the distribution F. Further, if a memorycell is in the distribution B state due to the programming of the Middlepage, the control unit 22 performs programming such that, when the bitvalue to be written to the Upper page is “1”, the memory cell is kept inthe distribution B, and, when the bit value to be written to the Upperpage is “0”, it is shifted to the distribution G. Further, if a memorycell is in the distribution C state due to the programming of the Middlepage, the control unit 22 performs programming such that, when the bitvalue to be written to the Upper page is “1”, the memory cell is kept inthe distribution C, and, when the bit value to be written to the Upperpage is “0”, it is shifted to the distribution D.

As described above, according to this embodiment, the control unit 22performs programming of any of the pages such that, when the bit valueto be written is “1”, no electric charge is injected, and, when the bitvalue to be written is “0”, an electric charge is injected to shift thedistribution to a distribution having a higher threshold voltage thanthat of before the programming.

Typically, the programming is performed by applying a programmingvoltage pulse one or more times. Every time the programming voltagepulse is applied, reading is subsequently performed to confirm if thecell has been shifted by exceeding the threshold boundary level. This isrepeated to shift the threshold of the memory cell into the range of apredetermined threshold distribution (threshold region). The specificsequence of the programming is not limited to this example.

Next, an explanation will be given of reading according to thisembodiment. FIG. 6 is a view showing a method of reading the Lower pageaccording to this embodiment. In this embodiment, regardless of how manypages writing has been performed to, the bit value of the Lower page canbe read by applying three voltages Vr1, Vr3, and Vr6 as read voltages.

In FIG. 6, (A) shows a state where the Lower page has been subjected towriting while the Middle page and the Upper page have not yet beensubjected to writing, by a programming method according to thisembodiment, as shown in FIG. 5A. When the three voltages Vr1, Vr3, andVr6 are applied as read voltages in this state, a memory cell storing abit value “1” is judged as having a threshold voltage lower than Vr1,and so the read result of the bit value of the Lower page comes to “1”.On the other hand, a memory cell storing a bit value “0” is judged ashaving a threshold voltage not lower than Vr1 but lower than Vr3, and sothe read result of the bit value of the Lower page comes to “0”.

In FIG. 6, (B) shows a state where the Middle page has been subjected towriting while the Upper page has not yet been subjected to writing, by aprogramming method according to this embodiment, as shown in FIG. 5B.When the three voltages Vr1, Vr3, and Vr6 are applied as read voltagesin this state, a memory cell storing a bit value “11” is judged ashaving a threshold voltage lower than Vr1, and so the read result of thebit value of the Lower page comes to “1”. A memory cell storing a bitvalue “10” and a memory cell storing a bit value “00” are judged ashaving a threshold voltage not lower than Vr1 but lower than Vr3, and sothe read result of the bit value of the Lower page comes to “0”. Amemory cell storing a bit value “31” is judged as having a thresholdvoltage not lower than Vr3 but lower than Vr6, and so the read result ofthe bit value of the Lower page comes to “1”.

In FIG. 6, (C) shows a state where the Upper page has been subjected towriting, by a programming method according to this embodiment, as shownin FIG. 5C. When the three voltages Vr1, Vr3, and Vr6 are applied asread voltages in this state, a memory cell storing a bit value “111” isjudged as having a threshold voltage lower than Vr1, and so the readresult of the bit value of the Lower page comes to “1”. A memory cellstoring a bit value “110” and a memory cell storing a bit value “100”are judged as having a threshold voltage not lower than Vr1 but lowerthan Vr3, and so the read result of the bit value of the Lower pagecomes to “0”. A memory cell storing a bit value “101”, a memory cellstoring a bit value “001”, and a memory cell storing a bit value “001”are judged as having a threshold voltage not lower than Vr3 but lowerthan Vr6, and so the read result of the bit value of the Lower pagecomes to “1”. A memory cell storing a bit value “010” and a memory cellstoring a bit value “000” are judged as having a threshold voltage notlower than Vr6, and so the read result of the bit value of the Lowerpage comes to “0”.

As described above, regardless of how many pages writing has beenperformed to, the bit value of the Lower page can be correctly read byapplying the three voltages Vr1, Vr3, and Vr6 as read voltages.

FIG. 7 is a view showing a method of reading the Middle page accordingto this embodiment. In this embodiment, regardless of how many pageswriting has been performed to, the bit value of the Middle page can beread by applying three voltages Vr2, Vr5, and Vr7 as read voltages.

In FIG. 7, (A) shows a state where the Lower page has been subjected towriting while the Middle page and the Upper page have not yet beensubjected to writing, by a programming method according to thisembodiment, as shown in FIG. 5A. When the three voltages Vr2, Vr5, andVr7 are applied as read voltages in this state, a memory cell storing abit value “1” and a memory cell storing a bit value “0” are judged ashaving a threshold voltage lower than Vr2, and so the read result of thebit value of the Middle page comes to “1”. In this state, since theMiddle page has not yet been subjected to writing, “1” representing theunwritten state is the correct value as the bit value of the Middlepage.

In FIG. 7, (B) shows a state where the Middle page has been subjected towriting while the Upper page has not yet been subjected to writing, by aprogramming method according to this embodiment, as shown in FIG. 5B.When the three voltages Vr2, Vr5, and Vr7 are applied as read voltagesin this state, a memory cell storing a bit value “11” and a memory cellstoring a bit value “10” are judged as having a threshold voltage lowerthan Vr2, and so the read result of the bit value of the Middle pagecomes to “1”. A memory cell storing a bit value “00” and a memory cellstoring a bit value “01” are judged as having a threshold voltage notlower than Vr2 but lower than Vr5, and so the read result of the bitvalue of the Middle page comes to “0”.

In FIG. 7, (C) shows a state where the Upper page has been subjected towriting, by a programming method according to this embodiment, as shownin FIG. 5C. When the three voltages Vr2, Vr5, and Vr7 are applied asread voltages in this state, a memory cell storing a bit value “111” anda memory cell storing a bit value “110” are judged as having a thresholdvoltage lower than Vr2, and so the read result of the bit value of theMiddle page comes to “1”. A memory cell storing a bit value “100”, amemory cell storing a bit value “101”, and a memory cell storing a bitvalue “001” are judged as having a threshold voltage not lower than Vr2but lower than Vr5, and so the read result of the bit value of theMiddle page comes to “0”. A memory cell storing a bit value “011” and amemory cell storing a bit value “010” are judged as having a thresholdvoltage not lower than Vr5 but lower than Vr7, and so the read result ofthe bit value of the Middle page comes to “1”. A memory cell storing abit value “000” is judged as having a threshold voltage not lower thanVr7, and so the read result of the bit value of the Middle page comes to“0”.

As described above, regardless of how many pages writing has beenperformed to, the bit value of the Middle page can be correctly read byapplying the three voltages Vr2, Vr5, and Vr7 as read voltages.

FIG. 8 is a view showing a method of reading the Upper page according tothis embodiment. In this embodiment, regardless of how many pageswriting has been performed to, the bit value of the Upper page can beread by applying Vr4 as a read voltage.

In FIG. 8, (A) shows a state where the Lower page has been subjected towriting while the Middle page and the Upper page have not yet beensubjected to writing, by a programming method according to thisembodiment, as shown in FIG. 5A. When Vr4 is applied as a read voltagein this state, a memory cell storing a bit value “1” and a memory cellstoring a bit value “0” are judged as having a threshold voltage lowerthan Vr4, and so the read result of the bit value of the Upper pagecomes to “1”. In this state, since the Upper page has not yet beensubjected to writing, “1” representing the unwritten state is thecorrect value as the bit value of the Upper page.

In FIG. 8, (B) shows a state where the Middle page has been subjected towriting while the Upper page has not yet been subjected to writing, by aprogramming method according to this embodiment, as shown in FIG. 5B.When Vr4 is applied as a read voltage in this state, a memory cellstoring a bit value “11”, a memory cell storing a bit value “10”, amemory cell storing a bit value “00” and a memory cell storing a bitvalue “01” are judged as having a threshold voltage lower than Vr4, andso the read result of the bit value of the Upper page comes to “1”. Inthis state, since the Upper page has not yet been subjected to writing,“1” representing the unwritten state is the correct value as the bitvalue of the Upper page.

In FIG. 8, (C) shows a state where the Upper page has been subjected towriting, by a programming method according to this embodiment, as shownin FIG. 5C. When Vr4 is applied as a read voltage in this state, amemory cell storing a bit value “111”, a memory cell storing a bit value“110”, a memory cell storing a bit value “100”, and a memory cellstoring a bit value “101” are judged as having a threshold voltage lowerthan Vr4, and so the read result of the bit value of the Upper pagecomes to “1”. A memory cell storing a bit value “001”, a memory cellstoring a bit value “011”, a memory cell storing a bit value “010”, anda memory cell storing a bit value “000” are judged as having a thresholdvoltage not lower than Vr4, and so the read result of the bit value ofthe Upper page comes to “0”.

As described above, regardless of how many pages writing has beenperformed to, the bit value of the Upper page can be correctly read byapplying Vr4 as a read voltage. In this way, the bit value of each ofthe pages can be correctly read regardless of how many pages writing hasbeen performed to, and so there is no need for this embodiment to manageinformation about how many pages writing has been performed to.

FIG. 9 is a flow chart showing an example of a writing sequenceaccording to this embodiment. FIG. 9 shows an example of a sequenceabout one memory cell group, from the unwritten state to the end ofwriting of the Upper page. At first, before writing, the control unit 22makes a judgment of whether or not the bit value to be written is “0”,for each of the memory cells (step S1). For a memory cell where the bitvalue to be written is “0” (Yes from step S1), the control unit 22injects an electric charge to raise its threshold voltage from thedistribution Er (first region) to the distribution A (second region)(step S2). For a memory cell where the bit value to be written is not“0” (i.e., it is “1”) (No from step S1), the control unit 22 does notchange its threshold voltage.

After the control unit 22 performs the above-described steps S1 and S2for all the memory cells of the memory cell group, it finishes thewriting of the Lower page (step S3), and then performs writing ofanother memory cell group (step S4). However, it may proceed to the nextstep S5 without performing writing of another memory cell group.

When the control unit 22 performs writing of the same memory cell groupafter finishing the writing of the Lower page, it makes a judgment ofwhether or not the bit value to be written is “0”, for each of thememory cells (step S5). For a memory cell where the bit value to bewritten is “0” (Yes from step S5), the control unit 22 makes a judgmentof whether or not the threshold voltage of this memory cell is withinthe distribution Er (step S6). If the threshold voltage of the memorycell is within the distribution Er (Yes from step S6), the control unit22 injects an electric charge to raise its threshold voltage from thedistribution Er to the distribution C (fourth region) (step S7). If thethreshold voltage of this memory cell is not within the distribution Er(No from step S6), the control unit 22 injects an electric charge toraise its threshold voltage from the distribution A to the distributionB (third region) (step S8). For a memory cell where the bit value to bewritten is not “0” (i.e., it is “1”) (No from step S5), the control unit22 does not change its threshold voltage.

After the control unit 22 performs the above-described steps S5 to S8for all the memory cells of the memory cell group, it finishes thewriting of the Middle page (step S9), and then performs writing ofanother memory cell group (step S10). However, it may proceed to thenext step S11 without performing writing of another memory cell group.

When the control unit 22 performs writing of the same memory cell groupafter finishing the writing of the Middle page, it makes a judgment ofwhether or not the bit value to be written is “0”, for each of thememory cells (step S11). For a memory cell where the bit value to bewritten is “0” (Yes from step S11), the control unit 22 injects anelectric charge into this memory cell to raise its threshold voltage(step S12). Specifically, a memory cell having the distribution Er isshifted to the distribution E (sixth region), a memory cell having thedistribution A is shifted to the distribution F (seventh region), amemory cell having the distribution B is shifted to the distribution G(eighth region), and a memory cell having the distribution C is shiftedto the distribution D (fifth region). For a memory cell where the bitvalue to be written is not “0” (No from step S11), the control unit 22ends the process as it is. By doing the process described above, thecontrol unit 22 completes the writing of the pages up to the Upper page.

FIG. 10 is a flow chart showing an example of a reading sequenceaccording to this embodiment. As described above, in this embodiment,regardless of how many pages, of the Upper, Middle, and Lower pages,writing has been performed to, reading can be performed. At first, thecontrol unit 22 selects a read-target page from the Upper, Middle, andLower pages (step S21). When selecting the Upper page (Upper from stepS21), the control unit 22 performs reading by use of Vr4 (step S22). Thecontrol unit 22 determines the data (the bit value of each of the memorycells) based on the read result obtained by Vr4 (step S23), and ends theprocess.

When selecting the Middle page (Middle from step S21), the control unit22 performs reading by use of Vr2 (step S24). Then, the control unit 22performs reading by use of Vr5 (step S25). Then, the control unit 22performs reading by use of Vr7 (step S26). The control unit 22determines the data based on the read results obtained by Vr2, Vr5, andVr7 (step S27), and ends the process.

When selecting the Lower page (Lower from step S21), the control unit 22performs reading by use of Vr1 (step S28). Then, the control unit 22performs reading by use of Vr3 (step S29). Then, the control unit 22performs reading by use of Vr6 (step S30). The control unit 22determines the data based on the read results obtained by Vr1, Vr3, andVr6 (step S31), and ends the process.

As described above, in this embodiment, the 1-3-3 coding shown in FIG. 4is used to perform writing of the pages one by one. Accordingly, thisembodiment can reduce the deviations in boundary number between thepages, and can smooth the error generation probabilities between thepages, and it can further provide decreases in the cost and/or powerconsumption of the memory device, along with increases in the writingand reading rates. Further, this embodiment allows the Upper page, theMiddle page, and the Lower page to be respectively read by use of thesame sequence, regardless of how many pages writing has been performedto, and so there is no need to manage information about how many pageswriting has been performed to.

Second Embodiment

FIGS. 11A and 11B are views showing data coding according to a secondembodiment. This embodiment employs a memory device and a nonvolatilememory 2 that have the same configurations as those of the firstembodiment. Hereinafter in this embodiment, an explanation will be givenof differences from the first embodiment.

FIG. 11A shows data coding for writing of the Lower page, and FIG. 11Bshows data coding for writing of the Middle page and data coding forwriting of the Upper page. As shown in FIGS. 11A and 11B, the writing ofthe Upper page and the writing of the Middle page use the same datacoding (FIG. 11B), but the writing of the Lower page uses data codingdifferent from that for the Upper page and the Middle page (FIG. 11A)

As described above, in this embodiment, the data coding differsdepending on the page, but writing can be performed to the pages one byone in order, by managing information about how many pages writing hasbeen performed to. The boundary numbers of the respective pagesaccording to this embodiment are the same as those of the firstembodiment referred to as 1-3-3, which can smooth the error generationprobabilities between the pages.

In this embodiment, the control unit 22 utilizes a write page flag(write page information) to manage information about how many pages, ofthe Upper page, the Middle page, and the Lower page, writing has beenperformed to, for each memory cell group.

Comparing the data coding shown in FIG. 11B with the data coding shownin FIG. 11A, the data coding shown in FIG. 11A includes a change at thebit value corresponding to the distribution B of the Middle page. Thedata coding shown in FIG. 11A is data coding for writing of the Lowerpage, and so the Middle page and the Upper page have not yet beensubjected to writing, at this time. In FIG. 11A, there is a thresholddistribution provided with hatching as a nonexistent thresholddistribution to indicate that this distribution is not used in writingof the Lower page. In the first embodiment, threshold distributions notused in writing of the Lower page are consecutive regions not lower thanthe distribution B. On the other hand, in this embodiment, in additionto consecutive regions not lower than the distribution C, thedistribution A not used exists between the distribution Er and thedistribution B both used in writing of the Lower page. Consequently, inreading of the unwritten Middle page after writing of the Lower page, itis necessary to perform the reading by use of data allocation differentfrom data allocation used after writing of the Middle page.

FIGS. 12A to 12C are views showing threshold distributions afterprogramming of memory cells according to this embodiment. FIG. 12A showsthreshold distributions after programming of the Lower page, FIG. 12Bshows threshold distributions after programming of the Middle page, andFIG. 12C shows threshold distributions after programming of the Upperpage. In this embodiment, programming can be performed for the pages oneby one, but the order of programming is fixed such that writing isperformed to the Lower page, the Middle page, and the Upper page in thisorder.

As shown in FIG. 12A, in programming of the Lower page, the control unit22 of the nonvolatile memory 2 operates in accordance with the bit valueto be written to the Lower page, and sets each of the memory cells to bekept in the distribution Er or to be shifted upward by one level to thedistribution B by injecting an electric charge. Specifically, thecontrol unit 22 performs programming such that, when the bit value to bewritten to the Lower page is “1”, no electric charge is injected, and,when the bit value to be written to the Lower page is “0”, an electriccharge is injected to shift the threshold voltage to the distribution B.

As shown in FIG. 12B, in writing of a memory cell group whose Lower pagehas already been subjected to writing, the control unit 22 performsprogramming of the Middle page. Specifically, if a memory cell is in thedistribution Er state due to the programming of the Lower page, thecontrol unit 22 performs programming such that, when the bit value to bewritten to the Middle page is “1”, the memory cell is kept in thedistribution Er, and, when the bit value to be written to the Middlepage is “0”, it is shifted to the distribution A. Further, if a memorycell is in the distribution B state due to the programming of the Lowerpage, the control unit 22 performs programming such that, when the bitvalue to be written to the Middle page is “0”, the memory cell is keptin the distribution B, and, when the bit value to be written to theMiddle page is “1”, it is shifted to the distribution C. In the firstembodiment, when the bit value to be written is “1”, no electric chargeis injected, and, when the bit value is “0”, an electric charge isinjected to shift the threshold distribution. However, in thisembodiment, the writing of the Middle page includes a case where, whenthe bit value to be written is “0”, no electric charge is injected, and,when the bit value is “1”, an electric charge is injected.

As shown in FIG. 12C, in writing of a memory cell group whose Middlepage has already been subjected to writing, the control unit 22 performsprogramming of the Upper page. Specifically, if a memory cell is in thedistribution Er state due to the programming of the Middle page, thecontrol unit 22 performs programming such that, when the bit value to bewritten to the Upper page is “1”, the memory cell is kept in thedistribution Er, and, when the bit value to be written to the Upper pageis “0”, it is shifted to the distribution E. Further, if a memory cellis in the distribution A state due to the programming of the Middlepage, the control unit 22 performs programming such that, when the bitvalue to be written to the Upper page is “1”, the memory cell is kept inthe distribution A, and, when the bit value to be written to the Upperpage is “0”, it is shifted to the distribution F. Further, if a memorycell is in the distribution B state due to the programming of the Middlepage, the control unit 22 performs programming such that, when the bitvalue to be written to the Upper page is “1”, the memory cell is kept inthe distribution B, and, when the bit value to be written to the Upperpage is “0”, it is shifted to the distribution G. Further, if a memorycell is in the distribution C state due to the programming of the Middlepage, the control unit 22 performs programming such that, when the bitvalue to be written to the Upper page is “1”, the memory cell is kept inthe distribution C, and, when the bit value to be written to the Upperpage is “0”, it is shifted to the distribution D.

Next, an explanation will be given of reading according to thisembodiment. FIG. 13 is a view showing a method of reading the Lower pageaccording to this embodiment. In this embodiment, regardless of how manypages writing has been performed to, the bit value of the Lower page canbe read by applying three voltages Vr2, Vr5, and Vr7 as read voltages.

FIG. 14 is a view showing a method of reading the Middle page accordingto this embodiment. In this embodiment, reading of the Middle page isperformed by applying three voltages Vr1, Vr3, and Vr6 as read voltages.However, depending on whether or not the Middle page has been subjectedto writing, data coding used for reading differs. Accordingly, thecontrol unit 22 makes reference to the page writing flag. If the flagshows a state where writing has been performed to the Lower page, asshown in (A) of FIG. 14, the control unit 22 operates in accordance withthe data coding shown in FIG. 11A, such that, when the threshold voltageis not lower than Vr3, the control unit 22 judges the bit value as “0”,and, when the threshold voltage is lower than Vr3, it judges the bitvalue as “1”. If the flag shows a state where writing has been performedup to the Middle page or the Upper page, as shown in (B) or (C) of FIG.14, the control unit 22 operates in accordance with the data codingshown in FIG. 11B, and determines the bit value based on the readresults obtained by Vr1, Vr3, and Vr6.

FIG. 15 is a view showing a method of reading an Upper page according tothis embodiment. In this embodiment, regardless of how many pageswriting has been performed to, the bit value of the Upper page can beread by applying Vr4 as a read voltage.

As shown in FIGS. 12A to 12C, the writing sequence according to thisembodiment shifts threshold distributions in accordance with the bitvalue to be written. Specifically, this sequence is the same as that ofthe first embodiment except that the data coding is different.

FIG. 16 is a flow chart showing an example of a reading sequenceaccording to this embodiment. FIG. 16 shows an example of a sequenceabout one memory cell group. At first, the control unit 22 reads thewrite page flag of a read-target memory cell group (step S41). Then, itproceeds with steps S42 and S43 that are the same as the steps S21 andS22 of the first embodiment. After the step S43, the control unit 22determines the data based on the write page flag and the read resultobtained by Vr4 (step S44).

When selecting the Middle page in the step S42 (Middle from step S42),the control unit 22 performs reading by use of Vr1 (step S45). Then, thecontrol unit 22 performs reading by use of Vr3 (step S46). Then, thecontrol unit 22 performs reading by use of Vr6 (step S47). Then, thecontrol unit 22 determines the data based on the write page flag and theread results obtained by Vr1, Vr3, and Vr6 (step S48), and ends theprocess. Specifically, if the write page flag has a value representing astate where writing has been performed to the Lower page, the controlunit 22 operates in accordance with the data coding shown in FIG. 11A,such that, when the threshold voltage is not lower than Vr3, the controlunit 22 judges the bit value as “0”, and, when the threshold voltage islower than Vr3, it judges the bit value as “1”. If the write page flaghas a value representing a state where writing has been performed up tothe Upper page or the Middle page, the control unit 22 operates inaccordance with the data coding shown in FIG. 11B, and determines thebit value based on the read results obtained by Vr1, Vr3, and Vr6.

When selecting the Lower page (Lower from step S42), the control unit 22performs reading by use of Vr2 (step S49). Then, the control unit 22performs reading by use of Vr5 (step S50). Then, the control unit 22performs reading by use of Vr7 (step S51). Then, the control unit 22determines the data based on the write page flag and the read resultsobtained by Vr2, Vr5, and Vr7 (step S52), and ends the process.

In reading of the Lower page and the Upper page, the same data codingcan be used regardless of the write page flag, as described above, andso there may be no need to consider the write page flag in the steps S48and S52.

In this embodiment, in order to discriminate how many pages has beenprogrammed, as described above, this information is held as a write pageflag when page programming is performed. For example, in a memory groupfor storing user data in the NAND memory cell array 23, this write pageflag may be held in a memory cell other than the memory cells thatstores the user data. Further, the flag may be stored in a memory cellgroup other than the memory group that stores the user data in the NANDmemory cell array 23, or may be held in a storage area of a memoryinside the nonvolatile memory 2 or memory controller 1. In this way, themethod for managing write page flags is not limited to a specific one.Further, the timing of reading a write page flag may differ from thetiming shown in FIG. 16, as long as it is before the data determination,and, for example, it may be at the same timing as the data reading.Particularly, this read timing can be suitably used if the write pageflag is held in the memory cell group that stores the user data.

As described above, this embodiment manages how many pages writing hasbeen performed to, by use of write page flags, in accordance with the1-3-3 coding shown in FIGS. 11A and 11B, so that writing can beperformed to the pages one by one. Accordingly, this embodiment canreduce the deviations in boundary number between the pages, and cansmooth the error generation probabilities between the pages, and it canfurther provide decreases in the cost and/or power consumption of thememory device, along with increases in the writing and reading rates.

Third Embodiment

FIGS. 17A to 17C are views showing data coding according to a thirdembodiment. This embodiment employs a memory device and a nonvolatilememory 2 that have the same configurations as those of the firstembodiment. Hereinafter in this embodiment, an explanation will be givenof differences from the first embodiment.

FIG. 17A shows data coding for writing of the Lower page, FIG. 17B showsdata coding for writing of the Middle page, and FIG. 17C shows datacoding for writing of the Upper page.

In FIGS. 17A to 17C, there is a threshold distribution (region)surrounded by a rectangular line to indicate that data value allocationis changed for this threshold distribution, depending on how many pageswriting has been performed to. Further, there is a thresholddistribution provided with hatching to indicate that this distributionis not used in writing of the corresponding page. This embodimentmanages how many pages writing has been performed to, by use of writepage flags, as in the second embodiment.

FIGS. 18A to 18C are views showing threshold distributions afterprogramming of memory cells according to this embodiment. FIG. 18A showsthreshold distributions after programming of the Lower page, FIG. 18Bshows threshold distributions after programming of the Middle page, andFIG. 18C shows threshold distributions after programming of the Upperpage. In this embodiment, programming can be performed for the pages oneby one, but the order of programming is fixed such that writing isperformed to the Lower page, the Middle page, and the Upper page in thisorder.

As shown in FIG. 18A, the control unit 22 of the nonvolatile memory 2performs programming such that, when the bit value to be written to theLower page is “1”, no electric charge is injected, and, when the bitvalue to be written to the Lower page is “0”, an electric charge isinjected to shift the threshold voltage to the distribution D.

As shown in FIG. 18B, in writing of a memory cell group whose Lower pagehas already been subjected to writing, if a memory cell is in thedistribution Er state due to the programming of the Lower page, thecontrol unit 22 performs programming such that, when the bit value to bewritten to the Middle page is “1”, the memory cell is kept in thedistribution Er, and, when the bit value to be written to the Middlepage is “0”, it is shifted to the distribution B. Further, if a memorycell is in the distribution D state due to the programming of the Lowerpage, the control unit 22 performs programming such that, when the bitvalue to be written to the Middle page is “0”, the memory cell is keptin the distribution D, and, when the bit value to be written to theMiddle page is “1”, it is shifted to the distribution E.

As shown in FIG. 18C, in writing of a memory cell group whose Middlepage has already been subjected to writing, if a memory cell is in thedistribution Er state due to the programming of the Middle page, thecontrol unit 22 performs programming such that, when the bit value to bewritten to the Upper page is “1”, the memory cell is kept in thedistribution Er, and, when the bit value to be written to the Upper pageis “0”, it is shifted to the distribution A. Further, if a memory cellis in the distribution B state due to the programming of the Middlepage, the control unit 22 performs programming such that, when the bitvalue to be written to the Upper page is “0”, the memory cell is kept inthe distribution B, and, when the bit value to be written to the Upperpage is “1”, it is shifted to the distribution C. Further, if a memorycell is in the distribution D state due to the programming of the Middlepage, the control unit 22 performs programming such that, when the bitvalue to be written to the Upper page is “1”, the memory cell is kept inthe distribution D, and, when the bit value to be written to the Upperpage is “0”, it is shifted to the distribution G. Further, if a memorycell is in the distribution E state due to the programming of the Middlepage, the control unit 22 performs programming such that, when the bitvalue to be written to the Upper page is “1”, the memory cell is kept inthe distribution E, and, when the bit value to be written to the Upperpage is “0”, it is shifted to the distribution F.

In the first embodiment, when the bit value to be written is “1”, noelectric charge is injected, and, when the bit value is “0”, an electriccharge is injected to shift the threshold distribution. However, in thisembodiment, the writing of the Middle page and the Upper page includes acase where, when the bit value to be written is “0”, no electric chargeis injected, and, when the bit value is “1”, an electric charge isinjected. Accordingly, in the data coding shown in FIGS. 17A to 17C,each of the Middle page and the Upper page includes a distribution atone place, for which data value allocation is changed, depending on howmany pages writing has been performed to.

As shown in FIGS. 18A to 18C, the writing sequence according to thisembodiment shifts threshold distributions in accordance with the bitvalue to be written. Specifically, this sequence is the same as that ofthe first embodiment except that the data coding is different.

The reading sequence according to this embodiment is the same as that ofthe second embodiment except that the data coding is different, and soit determines the data value by use of the write page flag and the readresults of the respective pages obtained by the read voltages serving asboundaries. Specifically, in this embodiment, reading of the Upper pageis performed by use of Vr1, Vr3, and Vr6, reading of the Middle page isperformed by use of Vr2, Vr5, and Vr7, and reading of the Lower page isperformed by use of Vr4. If writing has been performed up to the Upperpage, the bit value is determined in accordance with the data codingshown in FIG. 17C. If writing has been performed up to the Middle page,the bit value is determined in accordance with the data coding shown inFIG. 17B. In a case where writing has been performed up to the Middlepage, a method of determining the bit values of the Lower page and theMiddle page is the same as that used in a case where writing has beenperformed up to the Upper page, but, in reading of the Upper page, whenthe threshold voltage is judged as being not lower than Vr1 but lowerthan Vr3, the bit value is determined to be “1”. If the writing has beenperformed to the Lower page, the bit value is determined in accordancewith the data coding shown in FIG. 17A. In a case where writing has beenperformed to the Lower page, a method of determining the bit values ofthe Lower page and the Upper page is the same as that used in a casewhere writing has been performed up to the Upper page, but, in readingof the Middle page, when the threshold voltage is judged as being notlower than Vr2 but lower than Vr5, the bit value is determined to be“1”.

As described above, this embodiment manages how many pages writing hasbeen performed to, by use of write page flags, in accordance with the3-3-1 coding shown in FIGS. 17A to 17C, so that writing can be performedto the pages one by one. Accordingly, this embodiment can reduce thedeviations in boundary number between the pages, and can smooth theerror generation probabilities between the pages, and it can furtherprovide decreases in the cost and/or power consumption of the memorydevice, along with increases in the writing and reading rates.

Fourth Embodiment

FIGS. 19A to 19C are views showing data coding according to a fourthembodiment. This embodiment employs a memory device and a nonvolatilememory 2 that have the same configurations as those of the firstembodiment. Hereinafter in this embodiment, an explanation will be givenof differences from the first embodiment.

FIG. 19A shows data coding for writing of the Lower page, FIG. 19B showsdata coding for writing of the Middle page, and FIG. 19C shows datacoding for writing of the Upper page.

In FIGS. 19A to 19C, there is a threshold distribution (region)surrounded by a rectangular line to indicate that data value allocationis changed for this threshold distribution, depending on how many pageswriting has been performed to. Further, there is a thresholddistribution provided with hatching to indicate that this distributionis not used in writing of the corresponding page. This embodimentmanages how many pages writing has been performed to, by use of writepage flags, as in the second embodiment.

FIGS. 20A to 20C are views showing threshold distributions afterprogramming of memory cells according to this embodiment. FIG. 20A showsthreshold distributions after programming of the Lower page, FIG. 20Bshows threshold distributions after programming of the Middle page, andFIG. 20C shows threshold distributions after programming of the Upperpage. In this embodiment, programming can be performed for the pages oneby one, but the order of programming is fixed such that writing isperformed to the Lower page, the Middle page, and the Upper page in thisorder.

As shown in FIG. 20A, the control unit 22 of the nonvolatile memory 2performs programming such that, when the bit value to be written to theLower page is “1”, no electric charge is injected, and, when the bitvalue to be written to the Lower page is “0”, an electric charge isinjected to shift the threshold voltage to the distribution D.

As shown in FIG. 20B, in writing of a memory cell group whose Lower pagehas already been subjected to writing, if a memory cell is in thedistribution Er state due to the programming of the Lower page, thecontrol unit 22 performs programming such that, when the bit value to bewritten to the Middle page is “1”, the memory cell is kept in thedistribution Er, and, when the bit value to be written to the Middlepage is “0”, it is shifted to the distribution A. Further, if a memorycell is in the distribution D state due to the programming of the Lowerpage, the control unit 22 performs programming such that, when the bitvalue to be written to the Middle page is “1”, the memory cell is keptin the distribution D, and, when the bit value to be written to theMiddle page is “0”, it is shifted to the distribution F.

As shown in FIG. 20C, in writing of a memory cell group whose Middlepage has already been subjected to writing, if a memory cell is in thedistribution Er state due to the programming of the Middle page, thecontrol unit 22 performs programming such that, when the bit value to bewritten to the Upper page is “1”, the memory cell is kept in thedistribution Er, and, when the bit value to be written to the Upper pageis “0”, it is shifted to the distribution C. Further, if a memory cellis in the distribution A state due to the programming of the Middlepage, the control unit 22 performs programming such that, when the bitvalue to be written to the Upper page is “1”, the memory cell is kept inthe distribution A, and, when the bit value to be written to the Upperpage is “0”, it is shifted to the distribution B. Further, if a memorycell is in the distribution D state due to the programming of the Middlepage, the control unit 22 performs programming such that, when the bitvalue to be written to the Upper page is “0”, the memory cell is kept inthe distribution D, and, when the bit value to be written to the Upperpage is “1”, it is shifted to the distribution E. Further, if a memorycell is in the distribution F state due to the programming of the Middlepage, the control unit 22 performs programming such that, when the bitvalue to be written to the Upper page is “1”, the memory cell is kept inthe distribution F, and, when the bit value to be written to the Upperpage is “0”, it is shifted to the distribution G.

In the first embodiment, when the bit value to be written is “1”, noelectric charge is injected, and, when the bit value is “0”, an electriccharge is injected to shift the threshold distribution. However, in thisembodiment, the writing of the Upper page includes a case where, whenthe bit value to be written is “0”, no electric charge is injected, and,when the bit value is “1”, an electric charge is injected. Accordingly,in the data coding shown in FIGS. 19A to 19C, the Upper page includes adistribution at one place, for which data value allocation is changed,depending on how many pages writing has been performed to.

As shown in FIGS. 20A to 20C, the writing sequence according to thisembodiment shifts threshold distributions in accordance with the bitvalue to be written. Specifically, this sequence is the same as that ofthe first embodiment except that the data coding is different.

The reading sequence according to this embodiment is the same as that ofthe second embodiment except that the data coding is different, and soit determines the data value by use of the write page flag and the readresults of the respective pages obtained by the read voltages serving asboundaries. Specifically, in this embodiment, reading of the Upper pageis performed by use of Vr2, Vr5, and Vr7, reading of the Middle page isperformed by use of Vr1, Vr3, and Vr6, and reading of the Lower page isperformed by use of Vr4. If writing has been performed up to the Upperpage, the bit value is determined in accordance with the data codingshown in FIG. 19C. If writing has been performed up to the Middle page,the bit value is determined in accordance with the data coding shown inFIG. 19B. In a case where writing has been performed up to the Middlepage, a method of determining the bit values of the Lower page and theMiddle page is the same as that used in a case where writing has beenperformed up to the Upper page, but, in reading of the Upper page, whenthe threshold voltage is judged as being not lower than Vr2 but lowerthan Vr5, the bit value is determined to be “1”. If the writing has beenperformed to the Lower page, the bit value is determined in accordancewith the data coding shown in FIG. 19A. In a case where writing has beenperformed to the Lower page, a method of determining the bit values ofthe Lower page and the Middle page is the same as that used in a casewhere writing has been performed up to the Upper page, but, in readingof the Upper page, when the threshold voltage is judged as being notlower than Vr2 but lower than Vr5, the bit value is determined to be“1”.

As described above, this embodiment manages how many pages writing hasbeen performed to, by use of write page flags, in accordance with the3-3-1 coding shown in FIGS. 19A to 19C, so that writing can be performedto the pages one by one. Accordingly, this embodiment can reduce thedeviations in boundary number between the pages, and can smooth theerror generation probabilities between the pages, and it can furtherprovide decreases in the cost and/or power consumption of the memorydevice, along with increases in the writing and reading rates.

Fifth Embodiment

FIGS. 21A to 21C are views showing data coding according to a fifthembodiment. This embodiment employs a memory device and a nonvolatilememory 2 that have the same configurations as those of the firstembodiment. Hereinafter in this embodiment, an explanation will be givenof differences from the first embodiment.

FIG. 21A shows data coding for writing of the Lower page, FIG. 21B showsdata coding for writing of the Middle page, and FIG. 21C shows datacoding for writing of the Upper page.

In FIGS. 21A to 21C, there is a threshold distribution (region)surrounded by a rectangular line to indicate that data value allocationis changed for this threshold distribution, depending on how many pageswriting has been performed to. Further, there is a thresholddistribution provided with hatching to indicate that this distributionis not used in writing of the corresponding page. This embodimentmanages how many pages writing has been performed to, by use of writepage flags, as in the second embodiment.

FIGS. 22A to 22C are views showing threshold distributions afterprogramming of memory cells according to this embodiment. FIG. 22A showsthreshold distributions after programming of the Lower page, FIG. 22Bshows threshold distributions after programming of the Middle page, andFIG. 22C shows threshold distributions after programming of the Upperpage. In this embodiment, programming can be performed for the pages oneby one, but the order of programming is fixed such that writing isperformed to the Lower page, the Middle page, and the Upper page in thisorder.

As shown in FIG. 22A, the control unit 22 of the nonvolatile memory 2performs programming such that, when the bit value to be written to theLower page is “1”, no electric charge is injected, and, when the bitvalue to be written to the Lower page is “0”, an electric charge isinjected to shift the threshold voltage to the distribution B.

As shown in FIG. 22B, in writing of a memory cell group whose Lower pagehas already been subjected to writing, if a memory cell is in thedistribution Er state due to the programming of the Lower page, thecontrol unit 22 performs programming such that, when the bit value to bewritten to the Middle page is “1”, the memory cell is kept in thedistribution Er, and, when the bit value to be written to the Middlepage is “0”, it is shifted to the distribution E. Further, if a memorycell is in the distribution B state due to the programming of the Lowerpage, the control unit 22 performs programming such that, when the bitvalue to be written to the Middle page is “1”, the memory cell is keptin the distribution B, and, when the bit value to be written to theMiddle page is “0”, it is shifted to the distribution D.

As shown in FIG. 22C, in writing of a memory cell group whose Middlepage has already been subjected to writing, if a memory cell is in thedistribution Er state due to the programming of the Middle page, thecontrol unit 22 performs programming such that, when the bit value to bewritten to the Upper page is “1”, the memory cell is kept in thedistribution Er, and, when the bit value to be written to the Upper pageis “0”, it is shifted to the distribution A. Further, if a memory cellis in the distribution B state due to the programming of the Middlepage, the control unit 22 performs programming such that, when the bitvalue to be written to the Upper page is “0”, the memory cell is kept inthe distribution B, and, when the bit value to be written to the Upperpage is “1”, it is shifted to the distribution C. Further, if a memorycell is in the distribution D state due to the programming of the Middlepage, the control unit 22 performs programming such that, when the bitvalue to be written to the Upper page is “1”, the memory cell is kept inthe distribution D, and, when the bit value to be written to the Upperpage is “0”, it is shifted to the distribution G. Further, if a memorycell is in the distribution E state due to the programming of the Middlepage, the control unit 22 performs programming such that, when the bitvalue to be written to the Upper page is “1”, the memory cell is kept inthe distribution E, and, when the bit value to be written to the Upperpage is “0”, it is shifted to the distribution F.

In the first embodiment, when the bit value to be written is “1”, noelectric charge is injected, and, when the bit value is “0”, an electriccharge is injected to shift the threshold distribution. However, in thisembodiment, the writing of the Upper page includes a case where, whenthe bit value to be written is “0”, no electric charge is injected, and,when the bit value is “1”, an electric charge is injected. Accordingly,in the data coding shown in FIGS. 21A to 21C, the Upper page includes adistribution at one place, for which data value allocation is changed,depending on how many pages writing has been performed to.

As shown in FIGS. 22A to 22C, the writing sequence according to thisembodiment shifts threshold distributions in accordance with the bitvalue to be written. Specifically, this sequence is the same as that ofthe first embodiment except that the data coding is different.

The reading sequence according to this embodiment is the same as that ofthe second embodiment except that the data coding is different, and soit determines the data value by use of the write page flag and the readresults of the respective pages obtained by the read voltages serving asboundaries. Specifically, in this embodiment, reading of the Upper pageis performed by use of Vr1, Vr3, and Vr6, reading of the Middle page isperformed by use of Vr4, and reading of the Lower page is performed byuse of Vr2, Vr5, and Vr7. If writing has been performed up to the Upperpage, the bit value is determined in accordance with the data codingshown in FIG. 21C. If writing has been performed up to the Middle page,the bit value is determined in accordance with the data coding shown inFIG. 21B. In a case where writing has been performed up to the Middlepage, a method of determining the bit values of the Lower page and theMiddle page is the same as that used in a case where writing has beenperformed up to the Upper page, but, in reading of the Upper page, whenthe threshold voltage is judged as being not lower than Vr1 but lowerthan Vr3, the bit value is determined to be “1”. If the writing has beenperformed to the Lower page, the bit value is determined in accordancewith the data coding shown in FIG. 21A. In a case where writing has beenperformed to the Lower page, a method of determining the bit values ofthe Lower page and the Middle page is the same as that used in a casewhere writing has been performed up to the Upper page, but, in readingof the Upper page, when the threshold voltage is judged as being notlower than Vr1 but lower than Vr3, the bit value is determined to be“1”.

As described above, this embodiment manages how many pages writing hasbeen performed to, by use of write page flags, in accordance with the3-1-3 coding shown in FIGS. 21A to 21C, so that writing can be performedto the pages one by one. Accordingly, this embodiment can reduce thedeviations in boundary number between the pages, and can smooth theerror generation probabilities between the pages, and it can furtherprovide decreases in the cost and/or power consumption of the memorydevice, along with increases in the writing and reading rates.

Sixth Embodiment

FIGS. 23A to 23C are views showing data coding according to a sixthembodiment. This embodiment employs a memory device and a nonvolatilememory 2 that have the same configurations as those of the firstembodiment. Hereinafter in this embodiment, an explanation will be givenof differences from the first embodiment.

FIG. 23A shows data coding for writing of the Lower page, FIG. 23B showsdata coding for writing of the Middle page, and FIG. 23C shows datacoding for writing of the Upper page.

In FIGS. 23A to 23C, there is a threshold distribution (region)surrounded by a rectangular line to indicate that data value allocationis changed for this threshold distribution, depending on how many pageswriting has been performed to. Further, there is a thresholddistribution provided with hatching to indicate that this distributionis not used in writing of the corresponding page. This embodimentmanages how many pages writing has been performed to, by use of writepage flags, as in the second embodiment.

FIGS. 24A to 24C are views showing threshold distributions afterprogramming of memory cells according to this embodiment. FIG. 24A showsthreshold distributions after programming of the Lower page, FIG. 24Bshows threshold distributions after programming of the Middle page, andFIG. 24C shows threshold distributions after programming of the Upperpage. In this embodiment, programming can be performed for the pages oneby one, but the order of programming is fixed such that writing isperformed to the Lower page, the Middle page, and the Upper page in thisorder.

As shown in FIG. 24A, the control unit 22 of the nonvolatile memory 2performs programming such that, when the bit value to be written to theLower page is “1”, no electric charge is injected, and, when the bitvalue to be written to the Lower page is “0”, an electric charge isinjected to shift the threshold voltage to the distribution A.

As shown in FIG. 24B, in writing of a memory cell group whose Lower pagehas already been subjected to writing, if a memory cell is in thedistribution Er state due to the programming of the Lower page, thecontrol unit 22 performs programming such that, when the bit value to bewritten to the Middle page is “1”, the memory cell is kept in thedistribution Er, and, when the bit value to be written to the Middlepage is “0”, it is shifted to the distribution D. Further, if a memorycell is in the distribution A state due to the programming of the Lowerpage, the control unit 22 performs programming such that, when the bitvalue to be written to the Middle page is “1”, the memory cell is keptin the distribution A, and, when the bit value to be written to theMiddle page is “0”, it is shifted to the distribution F.

As shown in FIG. 24C, in writing of a memory cell group whose Middlepage has already been subjected to writing, if a memory cell is in thedistribution Er state due to the programming of the Middle page, thecontrol unit 22 performs programming such that, when the bit value to bewritten to the Upper page is “1”, the memory cell is kept in thedistribution Er, and, when the bit value to be written to the Upper pageis “0”, it is shifted to the distribution C. Further, if a memory cellis in the distribution A state due to the programming of the Middlepage, the control unit 22 performs programming such that, when the bitvalue to be written to the Upper page is “1”, the memory cell is kept inthe distribution A, and, when the bit value to be written to the Upperpage is “0”, it is shifted to the distribution B. Further, if a memorycell is in the distribution D state due to the programming of the Middlepage, the control unit 22 performs programming such that, when the bitvalue to be written to the Upper page is “0”, the memory cell is kept inthe distribution D, and, when the bit value to be written to the Upperpage is “1”, it is shifted to the distribution E. Further, if a memorycell is in the distribution F state due to the programming of the Middlepage, the control unit 22 performs programming such that, when the bitvalue to be written to the Upper page is “1”, the memory cell is kept inthe distribution F, and, when the bit value to be written to the Upperpage is “0”, it is shifted to the distribution G.

In the first embodiment, when the bit value to be written is “1”, noelectric charge is injected, and, when the bit value is “0”, an electriccharge is injected to shift the threshold distribution. However, in thisembodiment, the writing of the Upper page includes a case where, whenthe bit value to be written is “0”, no electric charge is injected, and,when the bit value is “1”, an electric charge is injected. Accordingly,in the data coding shown in FIGS. 23A to 23C, the Upper page includes adistribution at one place, for which data value allocation is changed,depending on how many pages writing has been performed to.

As shown in FIGS. 24A to 24C, the writing sequence according to thisembodiment shifts threshold distributions in accordance with the bitvalue to be written. Specifically, this sequence is the same as that ofthe first embodiment except that the data coding is different.

The reading sequence according to this embodiment is the same as that ofthe second embodiment except that the data coding is different, and soit determines the data value by use of the write page flag and the readresults of the respective pages obtained by the read voltages serving asboundaries. Specifically, in this embodiment, reading of the Upper pageis performed by use of Vr2, Vr5, and Vr7, reading of the Middle page isperformed by use of Vr4, and reading of the Lower page is performed byuse of Vr1, Vr3, and Vr6. If writing has been performed up to the Upperpage, the bit value is determined in accordance with the data codingshown in FIG. 23C. If writing has been performed up to the Middle page,the bit value is determined in accordance with the data coding shown inFIG. 23B. In a case where writing has been performed up to the Middlepage, a method of determining the bit values of the Lower page and theMiddle page is the same as that used in a case where writing has beenperformed up to the Upper page, but, in reading of the Upper page, whenthe threshold voltage is judged as being not lower than Vr2 but lowerthan Vr5, the bit value is determined to be “1”. If the writing has beenperformed to the Lower page, the bit value is determined in accordancewith the data coding shown in FIG. 23A. In a case where writing has beenperformed to the Lower page, a method of determining the bit values ofthe Lower page and the Middle page is the same as that used in a casewhere writing has been performed up to the Upper page, but, in readingof the Upper page, when the threshold voltage is judged as being notlower than Vr2 but lower than Vr5, the bit value is determined to be“1”.

As described above, this embodiment manages how many pages writing hasbeen performed to, by use of write page flags, in accordance with the3-1-3 coding shown in FIGS. 23A to 23C, so that writing can be performedto the pages one by one. Accordingly, this embodiment can reduce thedeviations in boundary number between the pages, and can smooth theerror generation probabilities between the pages, and it can furtherprovide decreases in the cost and/or power consumption of the memorydevice, along with increases in the writing and reading rates.

Seventh Embodiment

Next, an explanation will be given of a method of reading a memorydevice according to a seventh embodiment. This embodiment employs amemory device and a nonvolatile memory 2 that have the sameconfigurations as those of the first embodiment. Further, thisembodiment employs the same data coding as the first embodiment.Hereinafter in this embodiment, an explanation will be given ofdifferences from the first embodiment.

In general, the threshold of each of the memory cells of a NAND memoryfluctuates (varies) due to some causing factors. These causing factorsinclude various factors, such as program disturb, read disturb, and dataretention. In reading of a memory cell having a fluctuated threshold,the memory cell may be judged as being in a state corresponding to athreshold distribution (region) different from the thresholddistribution (region) corresponding to the written data value, therebycausing an error in the read data. As a countermeasure for this problem,there is a technique of reading the threshold after correcting itsfluctuation.

FIG. 25 is a view showing an example of threshold distributionfluctuations. FIG. 25 shows an example of threshold fluctuations presentin reading of the Lower page programmed to the state shown in (C) ofFIG. 6, according to the first embodiment. In FIG. 25, the thresholddistributions 100 shown by solid lines indicate threshold distributionsin a state before fluctuation, i.e., in an originally written state. Thethreshold distributions 101 shown by dotted lines indicate thresholddistributions in a state after fluctuation. Only one set of thresholddistributions is provided with these reference symbols, but the othersets of threshold distributions provided with no reference symbols areshown in the same way where the solid line denotes a state beforefluctuation and the dotted line denotes a state after fluctuation. Theexample of FIG. 25 shows a state of threshold fluctuations due to dataretention, where the distributions Er and A have been fluctuated in apositive direction (a direction toward the right side in FIG. 25) andthe distributions B to G have been fluctuated in a negative direction (adirection toward the left side in FIG. 25). If reading is performed tothe memory cells having threshold fluctuations by use of the originalread voltages Vr1, Vr3, and Vr6, for example, some of the memory cellsbelonging to the distribution F (those on the lower voltage side) cometo be judged as falling within a range between Vr3 and Vr6. In this way,when threshold fluctuations are generated, errors are caused in the readdata at many memory cells.

In light of this problem, this embodiment employs Vr1′, Vr3′, and Vr6′,which are read voltages including correction on fluctuation, in place ofVr1, Vr3, and Vr6. The method of determining Vr1′, Vr3′, and Vr6′ can beany method, but, for example, it may be a method of performing an errorcorrection process while using different read voltages, so as to selecterror correctable read voltages to be used as Vr1′, Vr3′, and Vr6′. Themethod of determining Vr1′, Vr3′, and Vr6′ is not limited to thismethod.

FIG. 26 is a flow chart showing an example of a reading sequenceaccording to this embodiment where read voltages are changed. Thesequence shown in FIG. 26 may be always used for reading. Alternatively,reading may be performed usually by use of read voltages with no change,and occasionally performed by use of the sequence shown in FIG. 26, onlywhen a certain condition for estimating a threshold fluctuation issatisfied. This certain condition is not limited to a specific one, but,for example, when the error uncorrectable ratio, obtained by an errorcorrection process in reading, exceeds a certain ratio, reading isperformed in accordance with read voltage changes shown FIG. 26. Asshown in FIG. 26, the processor 12 inputs a page read command (commandof requesting reading by page size) via the memory interface 15 into thenonvolatile memory 2 (step S61). The nonvolatile memory 2 reads the datain accordance with the page read command (step S62), and transmits theread data via the memory interface 15 to the ECC circuit 14 (step S63).The reading of the step S62 uses initial values (Vr1, Vr3, and Vr6 inthe example shown in FIG. 25) as read voltages, if it has not received aread level change command described later. However, these initial valuesmay be changed based on an instruction from the memory controller 1.

The ECC circuit 14 performs an error correction process by use of theinput data (step S64). The ECC circuit 14 notifies the processor 12 ofwhether or not error correction has been performable by this errorcorrection process. Based on this notification, the processor 12 makes ajudgment of whether or not the error correction has been performable(step S65). If the error correction has been performable (Yes from stepS65), it ends the process. If the error correction has been notperformable (No from step S65), the processor 12 determines the readlevels (read voltages) for the nonvolatile memory 2 to be valuesdifferent from the read voltages used in the step S62 (step S67). Then,based on the determined values, the processor 12 inputs a read levelchange command via the memory interface 15 into the nonvolatile memory 2(step S66), and returns to the step S61. The nonvolatile memory 2changes the read voltages in accordance with the read level changecommand.

The sequence described above achieves a search for read voltages thatmake error correction performable. The above-described Vr1′, Vr3′, andVr6′ shown in FIG. 25 correspond to read voltages that make errorcorrection performable.

The explanation set out above is given of an example using data codingaccording to the first embodiment, but read voltages may be similarlychanged in a case using data coding according to any one of the secondto sixth embodiments.

In this embodiment, when writing and reading are performed by use ofdata coding according to any one of the first to sixth embodiments, readvoltages are changed if there are threshold fluctuations. Accordingly,this embodiment provides the effects obtained by the first to sixthembodiments, and further reduces data read errors even if there arethreshold fluctuations.

Eighth Embodiment

Next, an explanation will be given of a method of reading a memorydevice according to an eighth embodiment. This embodiment employs amemory device and a nonvolatile memory 2 that have the sameconfigurations as those of the first embodiment. Further, thisembodiment employs the same data coding as the first embodiment.Hereinafter in this embodiment, an explanation will be given ofdifferences from the first embodiment.

When error correction encoding is performed to protect data stored inthe nonvolatile memory 2, any error correction code can be used, butsoft decision decoding may be adopted for decoding. In a case where softdecision decoding is adopted, codes for performing soft decisiondecoding, such as LDPC (Low Density Parity Check) codes, are used forencoding, in general. However, it may be designed that codes (such asBCH codes) for performing hard decision decoding are used for encodingand soft decision decoding is adopted for decoding.

This embodiment explains an example that performs soft decision decodingfor decoding. The encoding manner is not limited to a specific one, but,for example, the encoding is performed by use of LDPC codes, asdescribed above. When soft decision decoding is performed, so-calledsoft bit information is read from the nonvolatile memory 2 in additionto hard decision values the same as those for ordinary reading, and thedecoding is performed by use of the read hard decision values and thesoft bit information. The soft bit information is probabilityinformation that represents how close it is to a true value. When a NANDmemory is used as the nonvolatile memory 2, if the threshold voltage ofeach of the memory cells is more distant from the read voltages servingas the boundaries dividing the threshold distributions, it can beconsidered as being closer to a true value.

Hereinafter, a reading method of reading the soft bit information willbe referred to as a soft bit read, and the ordinary reading used as apremise in the first embodiment and so forth will be referred to as ahard bit read (HB read). The hard bit read applies one read voltagecorresponding to a boundary that divides threshold distributions, andmakes a judgment of whether or not the threshold voltage of a memorycell is higher than this boundary. On the other hand, the soft bit readperforms reading by use of a plurality of read voltages relative to oneboundary serving as a judgment subject. The hardware configuration forperforming a soft bit read can be any configuration, but, for example,the nonvolatile memory 2 may be configured to handle both of a soft bitread and an ordinary reading (a hard bit read) as a reading method, andto perform reading based on an instruction from the memory controller 1.Further, the shift amount of read voltage and/or the number of shifttypes to be used in performing a soft bit read may be set up in advancein the nonvolatile memory 2, or may be instructed from the memorycontroller 1.

FIG. 27 is a view showing an example of a manner of soft bits. FIG. 27shows a manner of reading of the Lower page by use of a soft bit readafter programming is performed to form the state shown in (C) of FIG. 6according to the first embodiment. The example shown in FIG. 27 readstwo kinds of soft bit information. Basically, the soft bit read is acombination of the hard bit read with reading that uses data read valuesobtained by shifted read voltages (to see whether or not the thresholdvoltage of a memory cell is not lower than each of the shifted readvoltages). In the example shown in FIG. 27, at first, the nonvolatilememory 2 determines three pieces of data of a hard bit read,respectively based on three read results obtained by use of the ordinaryread voltages Vr1, Vr3, and Vr6, respectively, (to see whether or notthe threshold voltage is not lower than each of the read voltages) (FIG.27, (A)). If the threshold voltage is not lower than the read voltage,the data value is “0”, and if it is lower than the read voltage, thedata value is “1”.

The, the nonvolatile memory 2 performs a soft bit read #1 (S1 read) byuse of read voltages respectively lower than the voltages Vr1, Vr3, andVr6 by a predetermined amount ΔR. Then, the nonvolatile memory 2determines data of the S1 read, based on three read results respectivelyobtained by use of Vr1-ΔR, Vr3-ΔR, and Vr6-ΔR (FIG. 27, (B)). Then, thenonvolatile memory 2 performs a soft bit read #2 (S2 read) by use ofread voltages respectively higher than the voltages Vr1, Vr3, and Vr6 byΔR. Then, the nonvolatile memory 2 determines data of the S2 read, basedon three read results respectively obtained by use of Vr1+ΔR, Vr3+ΔR,and Vr6+ΔR (FIG. 27, (C)).

Then, the nonvolatile memory 2 performs a soft bit read #3 (S3 read) byuse of read voltages respectively lower than the voltages Vr1, Vr3, andVr6 by an amount twice as large as ΔR. Then, the nonvolatile memory 2determines data of the S3 read, based on three read results respectivelyobtained by use of Vr1-2ΔR, Vr3-2ΔR, and Vr6-2ΔR (FIG. 27, (D)). Then,the nonvolatile memory 2 performs a soft bit read #4 (S4 read) by use ofread voltages respectively higher than the voltages Vr1, Vr3, and Vr6 byan amount twice as large as ΔR. Then, the nonvolatile memory 2determines data of the S4 read, based on three read results respectivelyobtained by use of Vr1+2ΔR, Vr3+2ΔR, and Vr6+2ΔR (FIG. 27, (E)).

Further, by performing an arithmetical operation of exclusive NORbetween the S1 read data and the S2 read data, it is achieved to specifymemory cells respectively having threshold voltages that fall within therange between Vr1-ΔR and Vr1+GR, within the range between Vr3-ΔR andVr3+ΔR, and within the range between Vr6-ΔR and Vr6+ΔR (FIG. 27, (F)).Similarly, by performing an arithmetical operation of exclusive NORbetween the S3 read data and the S4 read data, it is achieved to specifymemory cells respectively having threshold voltages that fall within therange between Vr1-2ΔR and Vr1+vΔR, within the range between Vr3-2ΔR andVr3+2ΔR, and within the range between Vr6-2ΔR and Vr6+2ΔR (FIG. 27,(G)). These results shown in (F) and (G) of FIG. 27 correspond to thetwo kinds of soft bit information.

Then, the ECC circuit 14 performs soft decision decoding by use of thehard bit read results and the soft bit information, and thereby performserror correction. In this embodiment, the explanation set out above isgiven of an example using data coding according to the first embodiment,but a soft bit read may be similarly performed in a case using datacoding according to any one of the second to sixth embodiments. Further,when the soft bit read according to this embodiment is performed, theread voltage change according to the seventh embodiment may beadditionally performed.

Ninth Embodiment

Next, an explanation will be given of threshold distributions in amemory device according to a ninth embodiment. This embodiment employs amemory device and a nonvolatile memory 2 that have the sameconfigurations as those of the first embodiment. Further, thisembodiment employs the same data coding as the first embodiment.Hereinafter in this embodiment, an explanation will be given ofdifferences from the first embodiment.

In each of the examples explained in the first to sixth embodiments, thewidths of the threshold distributions (regions) used in programming ofthe Lower page and the Middle page are set the same as the widthseventually necessitated for programming of the Upper page.

In this embodiment, as a modification of the data coding described inthe third embodiment, the width of a threshold distribution for theLower page and the Middle page is set larger, and the interval betweenthreshold distributions for the Middle page is set larger. This isadopted to speed up writing of the Lower page and to reduce theprobability of data errors for the Middle page.

FIGS. 28A to 28C are views showing examples of threshold distributionsafter programming of respective pages according to this embodiment.FIGS. 28A, 28B, and 28C show examples of threshold distributions afterprogramming of the Lower page, the Middle page, and the Upper page,respectively. According to this embodiment, the threshold distributioncorresponding to the data value “0” after programming of the Lower pagehas a larger width and a lower center voltage, as compared with thedistribution 102 corresponding to the data value “0” after programmingof the Lower page shown in FIG. 18A according to the third embodiment.Consequently, after programming of the Middle page, the interval betweenthe threshold distribution corresponding to the data value “00” and thethreshold distribution corresponding to the data value “10” is expanded.

When the width of a threshold distribution is set larger as describedabove, the rise width at each programming pulse of a programming voltageapplied to the word line in programming of the Lower page can be madelarger than those of the Middle page and the Upper page. Consequently,the distribution width adjustment can be performed more roughly and sothe programming time can be shortened. Further, since the intervalbetween threshold distributions for the Middle page is larger, the dataerror probability is lowered, and so data reading can be performed moreaccurately. By utilizing this, it is possible to use only the Lower pageas binary data, which allows programming to be performed at a higherrate and more reliably.

In the third embodiment, the threshold distribution corresponding to thedata value “100” in programming of the Upper page is the same as thethreshold distribution corresponding to the data value “00” afterprogramming of the Middle page, and so there is no need to performprogramming for the data value “100” in writing of the Upper page. Onthe other hand, in this embodiment, in writing of the Upper page, forthe data value “100”, programming needs to be performed to obtain thethreshold distribution corresponding to the data value “100” shown inFIG. 28C.

The example described above is explained as a modification of the thirdembodiment. However, another embodiment may be similarly modified inrelation to at least some of the threshold distributions afterprogramming of the Lower page and the Middle page, such that the widthof a threshold distribution is set larger, and the interval of thresholddistributions for the Middle page is set larger.

As described above, in this embodiment, in relation to at least some ofthe threshold distributions after programming of the Lower page and theMiddle page, the width of a threshold distribution is set larger and theinterval of threshold distributions for the Middle page is set larger.Consequently, this embodiment can shorten the programming time, and canreduce reading errors for the Middle page.

Tenth Embodiment

Next, an explanation will be given of threshold distributions in amemory device according to a tenth embodiment. This embodiment employs amemory device and a nonvolatile memory 2 that have the sameconfigurations as those of the first embodiment. Further, thisembodiment employs the same data coding as the first embodiment.Hereinafter in this embodiment, an explanation will be given ofdifferences from the first embodiment.

In this embodiment, similarly to the ninth embodiment, as a modificationof the data coding described in the third embodiment, the width of athreshold distribution for the Lower page and the Middle page is setlarger, and the interval between threshold distributions for the Middlepage is set larger.

FIGS. 29A to 29C are views showing examples of threshold distributionsafter programming of respective pages according to this embodiment.FIGS. 29A, 29B, and 29C show examples of threshold distributions afterprogramming of the Lower page, the Middle page, and the Upper page,respectively. According to this embodiment, the threshold distributioncorresponding to the data value “0” after programming of the Lower pageis shifted further toward the lower voltage side, as compared with theninth embodiment. In FIGS. 29A to 29C, the distribution 102 shows athreshold distribution according to the third embodiment. In FIGS. 29Ato 29C, only one distribution is provided with this reference symbol,but the threshold distributions shown by dotted lines indicate thresholddistributions according to the third embodiment, similarly to thedistribution provided with the reference symbol. After programming ofthe Middle page, each of the threshold distribution corresponding to thedata value “01” and the threshold distribution corresponding to the datavalue “10” has a larger width and a lower center voltage, as comparedwith the threshold distribution according to the third embodiment.

Consequently, after programming of the Middle page, the interval betweenthe threshold distribution corresponding to the data value “00” and thethreshold distribution corresponding to the data value “10” is expanded.In this case, the rise width at each programming pulse of a programmingvoltage applied to the word line in programming the Lower page and theMiddle page can be made larger than that of the Upper page.Consequently, the distribution width adjustment can be performed moreroughly and so the programming time can be shortened. Further, since theinterval between threshold distributions for the Middle page is larger,the data error probability is lowered, and so data reading can beperformed more accurately. By utilizing this, it is possible to use onlythe Lower page as binary data, which allows programming to be performedat a higher rate and more reliably.

In the third embodiment, the threshold distributions corresponding tothe data values “001”, “100”, and “110” in programming of the Upper pageare respectively the same as the threshold distributions correspondingto the data values “01”, “00”, and “10” after programming of the Middlepage, and so there is no need to perform programming for them. However,in this embodiment, in programming of the Upper page, the programmingneeds to be performed to set the threshold distributions correspondingto the data values “001”, “100”, and “110” to be threshold distributionsshown in FIG. 29C.

The example described above is explained as a modification of the thirdembodiment. However, another embodiment may be similarly modified inrelation to at least some of the threshold distributions afterprogramming of the Lower page and the Middle page, such that the widthof a threshold distribution is set larger, and the interval of thresholddistributions for the Middle page is set larger.

As described above, in this embodiment, in relation to at least some ofthe threshold distributions after programming of the Lower page and theMiddle page, the width of a threshold distribution is set larger and theinterval of threshold distributions for the Middle page is set larger.Consequently, this embodiment can shorten the programming time, and canreduce reading errors for the Middle page.

Eleventh Embodiment

Next, an explanation will be given of threshold distributions in amemory device according to an eleventh embodiment. This embodimentemploys a memory device and a nonvolatile memory 2 that have the sameconfigurations as those of the first embodiment. Further, thisembodiment employs the same data coding as the fourth embodiment.Hereinafter in this embodiment, an explanation will be given ofdifferences from the fourth embodiment.

For example, in the data coding according to the fourth embodiment, thethreshold distribution corresponding to the data value “11” and thethreshold distribution corresponding to the data value “01” afterprogramming of the Middle page become distributions adjacent to eachother in the final distributions after programming of the Upper page.Accordingly, regardless of a small number of distributions used for theMiddle page, the data error probability comes to be equivalent to thatof after programming of the Upper page, in reading using the readvoltage serving as the boundary between the distributions adjacent toeach other. Particularly, the erased distribution (distribution Er) isnot subjected to voltage compensation by programming thereafter, and soit allows accumulation of stresses (program disturb, read disturb,and/or data retention), which may cause data errors. Accordingly, ingeneral, the erased distribution has a data error probability higherthan the other data distributions, and so the error generationprobability becomes higher if the erased distribution and thedistribution adjacent to the erased distribution are used. In light ofthis problem, in this embodiment, the distribution interval between theerased distribution and its adjacent distribution is set larger than theintervals between the other distributions, to reduce the data errorprobability for the Middle page.

FIGS. 30A to 30C are views showing examples of threshold distributionsafter programming of respective pages according to this embodiment.FIGS. 30A, 30B, and 30C show examples of threshold distributions afterprogramming of the Lower page, the Middle page, and the Upper page,respectively. In FIGS. 30A to 30C, the threshold distributions 103 shownby dotted lines indicate threshold distributions according to the fourthembodiment. In FIGS. 30A to 30C, when data coding is performed as in thefourth embodiment, the center voltages of the data distributions otherthan the erased distribution are set higher than those of the thresholddistributions 103 according to the fourth embodiment, so that theinterval between the erased distribution and its adjacent distributionis expanded. Consequently, in reading using the read voltage between theerased distribution and its adjacent distribution, the data errorprobability is lowered, and so data reading can be performed moreaccurately.

The example described above is explained as a modification of the fourthembodiment. However, another embodiment (first embodiment, secondembodiment, or sixth embodiment), in which threshold distributions afterprogramming of the Middle page become distributions adjacent to eachother in the final distributions after programming of the Upper page,may be similarly modified such that the center voltages of the datadistributions other than the erased distribution are set higher.

As described above, in a case where threshold distributions afterprogramming of the Middle page become distributions adjacent to eachother in the final distributions after programming of the Upper page,the center voltages of the data distributions other than the eraseddistribution are set higher, and, in other words, the interval betweenthe erased distribution and its adjacent distribution is set larger thanthe intervals between the other distributions. Consequently, in readingusing the read voltage between the erased distribution and its adjacentdistribution, the data error probability is lowered, and so data readingcan be performed more accurately.

While certain embodiments have been described, these embodiments havebeen presented by way of example only, and are not intended to limit thescope of the inventions. Indeed, the novel embodiments described hereinmay be embodied in a variety of other forms; furthermore, variousomissions, substitutions and changes in the form of the embodimentsdescribed herein may be made without departing from the spirit of theinventions. The accompanying claims and their equivalents are intendedto cover such forms or modifications as would fall within the scope andspirit of the inventions.

1-18. (canceled)
 19. A method for controlling a memory cell arrayincluding a plurality of memory cells connected to a word line, each ofthe plurality of memory cells being configured to store data bycorrelating three bits with eight threshold regions, the eight thresholdregions respectively corresponding to first to eighth threshold regionsdefined in ascending order of threshold voltage, the three bitsrespectively corresponding to first to third pages, a threshold voltageof an unwritten state of the memory cells being set at the firstthreshold region, the method comprising: when writing a first value tothe first page of an unwritten memory cell, performing programming suchthat the threshold voltage of the unwritten memory cell is within thesecond threshold region; when performing writing of the second page ofthe memory cell whose first page has been subjected to writing, if avalue corresponding to the first page of the memory cell is a secondvalue and a value to be written to the second page is the first value,performing programming such that the threshold voltage of the memorycell is within the fourth threshold region, and if a value correspondingto the first page of the memory cell is the first value and a value tobe written to the second page is the first value, performing programmingsuch that the threshold voltage of the memory cell is within the thirdthreshold region; when performing writing of the third page of thememory cell whose second page has been subjected to writing, if a valuecorresponding to the first page of the memory cell is the second value,a value corresponding to the second page of the memory cell is thesecond value, and a value to be written to the third page is the firstvalue, performing programming such that the threshold voltage of thememory cell is within the sixth threshold region, if a valuecorresponding to the first page of the memory cell is the first value, avalue corresponding to the second page of the memory cell is the secondvalue, and a value to be written to the third page is the first value,performing programming such that the threshold voltage of the memorycell is within the seventh threshold region, if a value corresponding tothe first page of the memory cell is the first value, a valuecorresponding to the second page of the memory cell is the first value,and a value to be written to the third page is the first value,performing programming such that the threshold voltage of the memorycell is within the eighth threshold region, and if a value correspondingto the first page of the memory cell is the second value, a valuecorresponding to the second page of the memory cell is the first value,and a value to be written to the third page is the first value,performing programming such that the threshold voltage of the memorycell is within the fifth threshold region; when reading out data fromthe first page, reading out the data using a first, a third, and a sixthread voltage, the first read voltage being a boundary voltage betweenthe first threshold region and the second threshold region, the thirdread voltage being a boundary voltage between the third threshold regionand the fourth threshold region, the sixth read voltage being a boundaryvoltage between the sixth threshold region and the seventh thresholdregion, and determining data of the first page on a basis of the readout data; when reading out data from the second page, reading out thedata using a second, a fifth, and a seventh read voltage, the secondread voltage being a boundary voltage between the second thresholdregion and the third threshold region, the fifth read voltage being aboundary voltage between the fifth threshold region and the sixththreshold region, the seventh read voltage being a boundary voltagebetween the seventh threshold region and the eighth threshold region,and determining data of the second page on a basis of the read out data;and when reading out data from the third page, reading out the datausing a fourth read voltage, the fourth read voltage being a boundaryvoltage between the fourth threshold region and the fifth thresholdregion, and determining data of the third page on a basis of the readout data.
 20. The method according to claim 19, wherein the first valueis “0”, and the second value is “1”.
 21. The method according to claim19, wherein a maximum number among a first number, a second number, anda third number is three, the first number being a number of boundariesof the threshold regions to determine data of the first page, the secondnumber being a number of boundaries of the threshold regions todetermine data of the second page, the third number being a number ofboundaries of the threshold regions to determine data of the third page.22. The method according to claim 19, further comprising, when readingout data from unwritten page that is one of the first to the thirdpages, outputting “0” as a reading result.
 23. The method according toclaim 19, wherein manage information about how many pages, of the firstto third pages, for which writing has been performed to is not managed.24. The method according to claim 19, wherein an interval between thefirst threshold region and the second threshold region is larger than aninterval between any two other directly adjacent threshold regions amongthe eight threshold regions.
 25. The method according to claim 19,wherein the performing the programming includes applying a voltage tothe word line.
 26. The method according to claim 19, wherein theperforming the programming includes applying a voltage to the word line,and a rise width at each pulse of the applied voltage applied to theword line of the first page is larger than that of the second page andthe third page.
 27. The method according to claim 25, wherein a risewidth at each pulse of the applied voltage applied to the word line ofthe first page and the second page is larger than that of the thirdpage.